End-to-end message authenticity generally includes three components: message authentication to authenticate an originating user of a transaction, message integrity to ensure that the transaction does not change in-transit, and replay protection to protect against replay attacks. Conventionally, end-to-end message authenticity is addressed through Public Key Infrastructure (PKI) technology, or in some cases symmetric key technology. However, various aspects of the PKI render this technology problematic.
One of the main disadvantages of the PKI is that it requires secure storage of private keys by the originating user. If these keys are simply stored in a computer system, the authentication suffices only to link the equipment with the transaction; the authentication suffices only if one protects the computer system from unauthorized access. This may be unacceptable for many applications due to the difficulty of adequately protecting computer systems. An external device such as a floppy disk or IC card might be used to store the private key, but this has proven to be unwieldy and expensive, especially where widespread dissemination is desired. Moreover, the floppy disk has the property that it can be easily copied, so the owner of the floppy cannot be sure if another person had not previously copied the floppy without notice. An IC card or USB token may incorporate copy protection; however, these devices may require installation of system software, drivers, and sometimes hardware, all of which precipitate user resistance.